home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume25 / policy / part02 < prev    next >
Encoding:
Text File  |  1992-02-29  |  37.4 KB  |  1,047 lines

  1. Newsgroups: comp.sources.unix
  2. From: bbh@mtek.mtek.com (Bud Hovell)
  3. Subject: v25i138: policy V2 - tools for providing interactive timeshare policies, Part02/03
  4. Sender: unix-sources-moderator@pa.dec.com
  5. Approved: vixie@pa.dec.com
  6.  
  7. Submitted-By: bbh@mtek.mtek.com (Bud Hovell)
  8. Posting-Number: Volume 25, Issue 138
  9. Archive-Name: policy/part02
  10.  
  11. Return-Path: oliveb!mtek!nosun.West.Sun.COM!bbh
  12. Received: by cognition.pa.dec.com; id AA04507; Tue, 25 Feb 92 06:51:51 -0800
  13. Received: by uucp-gw-1.pa.dec.com; id AA08997; Tue, 25 Feb 92 06:51:34 -0800
  14. Received: by oliveb.ATC.OLIVETTI.COM (smail2.5)
  15.     id AA08049; 25 Feb 92 06:51:02 PST (Tue)
  16. Received: from Sun.COM (sun-barr) by sun.Eng.Sun.COM (4.1/SMI-4.1)
  17.     id AA03199; Tue, 25 Feb 92 06:27:12 PST
  18. Received: from nosun.West.Sun.COM by Sun.COM (4.1/SMI-4.1)
  19.     id AA12974; Tue, 25 Feb 92 06:26:57 PST
  20. Received: from mtek.UUCP by nosun.West.Sun.COM (4.1/SMI-4.1-900117)
  21.     id AA00555; Tue, 25 Feb 92 06:26:48 PST
  22. Received: by mtek.mtek.com (Smail2.5+apb/mje900117)
  23.     id AA10494; Tue, 25 Feb 92 04:06:06 PST
  24. Subject: Policy Package, part 2 of 3
  25. To: vixie (Paul Vixie)
  26. Date: Tue, 25 Feb 92 4:06:05 PST
  27. Reply-To: policy@mtek.com
  28. X-Mailer: ELM [version 2.4dev PL52]
  29. Message-Id: <9202250406.AA10494@mtek.mtek.com>
  30. From: bbh@mtek.mtek.com (Bud Hovell)
  31.  
  32.  
  33. #! /bin/sh
  34. # This is a shell archive.  Remove anything before this line, then unpack
  35. # it by saving it into a file and typing "sh file".  To overwrite existing
  36. # files, type "sh file -c".  You can also feed this as standard input via
  37. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  38. # will see the following message at the end:
  39. #        "End of archive 2 (of 3)."
  40. # Contents:  Makefile.d misc/Survey misc/art.ur1
  41. # Wrapped by policy@mtek.com on Tue Feb 18 20:42:38 1992
  42. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  43. if test -f 'Makefile.d' -a "${1}" != "-c" ; then 
  44.   echo shar: Will not clobber existing file \"'Makefile.d'\"
  45. else
  46. echo shar: Extracting \"'Makefile.d'\" \(10477 characters\)
  47. sed "s/^X//" >'Makefile.d' <<'END_OF_FILE'
  48. X#!/bin/sh
  49. X# $Id: Makefile.d,v 5.3.2.5 91/09/03 09:55:10 policy USENET $
  50. X#
  51. X# Copyright (c) 1991 by Bergen B. Hovell, Jr.
  52. X# You may not distribute or otherwise use this work for any profit-making
  53. X# purpose without the express permission of the author, but this work is
  54. X# otherwise freely distributable so long as this header remains attached.
  55. X#
  56. X# Revision 4.6.2.2  91/04/04  12:29:19  bbh
  57. X# Use variable substitution for differences in BSD vs. SYSV 'sh' commands.
  58. X# By Andy Linton <Andy.Linton@comp.vuw.ac.nz>.
  59. X# 
  60. X# If we don't have hash-bang:
  61. XSHELL=/bin/sh
  62. X# Don't tour the engine-room:
  63. X.SILENT:
  64. X############################ edit here #################################
  65. X# Path to our public executables:
  66. XPATH=/usr/local/bin:/usr/ucb:/bin:/usr/bin
  67. X# How to get this machine to give us it's name:
  68. Xmyname="uuname -l"
  69. X# If this machine is really fast, then let fast=yes, else leave blank:
  70. Xfast=
  71. X# What is the environmental variable name for the login user on this system:
  72. Xname=$$LOGNAME
  73. X# Name of the record file (preferably a dot-file) to be placed in the user's
  74. X# home directory:
  75. Xrecord=$$HOME/.policy_read
  76. X# Your favorite pager:
  77. Xpager=/usr/local/bin/less
  78. X# Default terminal for temporary use by the pager:
  79. Xdefterm=vt100
  80. X# Who should get mail notification of record user's first-time login 
  81. X# (or failure messages):
  82. Xmssgto=sysmgr
  83. X# If we want the Bourne-shell version of the 'policy' script, then
  84. X# let script=bourne. If we want the Perl version, then script=perl:
  85. Xscript=bourne
  86. X# Echo handles optional newlines in different ways. Choose ONE of the
  87. X# following lines and comment-out the other:
  88. X# BSD style
  89. X#n='-n'
  90. X# SYSV style
  91. Xc=\c
  92. X# Are we, specifically, an AT&T 3B1 (Unix-pc, 7300, Safari.....)? If so,
  93. X# say is3b1=yes, else leave blank:
  94. Xis3b1=
  95. X# We will attempt to create any of the following named directories (if they
  96. X# don't already exist) set to the owner and group ids shown above.
  97. X#
  98. X# Which directory for executable 'policy' (/usr/local/bin ?):
  99. Xbindir=/usr/local/bin
  100. X# Which directory for executable '1stlogin' (/usr/local/etc ?):
  101. Xetcdir=/usr/local/etc
  102. X# Full path name to your 'Policy' directory:
  103. Xpoldir=/usr/local/adm/Policy
  104. X# Policy text file containing the first-login announcement:
  105. Xann=ann
  106. X# Which user id should own all these installed files and created directories
  107. X# ('root'?):
  108. Xowner=root
  109. X# Which group id should own all these files and directories ('bin'?):
  110. Xgroup=bin
  111. X########################## edit no more ################################
  112. X# What is this entire package called?:
  113. Xpkg=Policy Package
  114. X
  115. X# Full path names to our installed executables:
  116. Xpol=$(bindir)/policy
  117. X1st=$(etcdir)/1stlogin
  118. X
  119. Xargs:
  120. X    # ....but we do offer a menu, also:
  121. X    echo ''
  122. X    echo ''
  123. X    echo '                       "MAKE" OPTIONS'
  124. X    echo ''
  125. X    echo '    Arguments to "make":'
  126. X    echo '    "dotext":    builds from scratch and installs it ALL'
  127. X    echo '    "notext":    same, EXCEPT text files are ignored'
  128. X    echo '    "man":       makes localized 'man' pages for your system'
  129. X    echo '    "readman":   read localized 'man' pages for your review'
  130. X    echo '    "uninstall": ONLY 1stlogin and policy removed from system'
  131. X    echo '    "virgin":    restores us to original, as-issued condition'
  132. X    echo ''
  133. X    echo '    .............you have to install your own 'man' pages!
  134. X    echo ''
  135. X
  136. Xall:
  137. X    args
  138. X
  139. X# Main installation options:
  140. Xdotext= howdy $(script) install text man tellwhat
  141. Xnotext= howdy $(script) install      man tellwhat
  142. X
  143. Xdotext:    $(dotext)
  144. X
  145. Xnotext:    $(notext)
  146. X
  147. Xhowdy:
  148. X    # Say howdy:
  149. X    echo ''
  150. X    echo "Now doing full installation of '$(pkg)' [$(script) option]"
  151. X
  152. X    # Remove any executables or temp file created on the last make:
  153. X    echo ''
  154. X    echo ${n} "First, be sure we are a virgin..........................${c}"
  155. X    rm -f 1stlogin policy policy.1 1stlogin.8 install.out .hold 
  156. X    echo DONE!
  157. X
  158. Xbourne: scripts/policy.sh scripts/1stlogin.sh
  159. X    echo ''
  160. X    echo ${n} "Substituting your variables into 'policy' (Bourne)......${c}"
  161. X    sed -e '/^PATH=/s%=.*%=$(PATH)%' \
  162. X        -e '/^poldir=/s%=.*%=$(poldir)%' \
  163. X            -e '/^myname=/s%=.*%=$(myname)%' \
  164. X        -e '/^pager=/s%=.*%=$(pager)%' \
  165. X        -e '/^is3b1=/s%=.*%=$(is3b1)%' scripts/policy.sh > policy
  166. X    echo DONE!
  167. X    echo ''
  168. X
  169. X    echo ${n} "Substituting your variables into '1stlogin' (Bourne)....${c}"
  170. X    sed -e '/^PATH=/s%=.*%=$(PATH)%' \
  171. X            -e '/^myname=/s%=.*%=$(myname)%' \
  172. X            -e '/^name=/s%=.*%=$(name)%' \
  173. X        -e '/^record=/s%=.*%=$(record)%' \
  174. X        -e '/^bindir=/s%=.*%=$(bindir)%' \
  175. X        -e '/^poldir=/s%=.*%=$(poldir)%' \
  176. X        -e '/^defterm=/s%=.*%=$(defterm)%' \
  177. X        -e '/^pager=/s%=.*%=$(pager)%' \
  178. X        -e '/^announcement=/s%=.*%=$(poldir)/$(ann)%' \
  179. X        -e '/^mssgto=/s%=.*%=$(mssgto)%' \
  180. X        -e '/^fast=/s%=.*%=$(fast)%' scripts/1stlogin.sh > 1stlogin
  181. X    echo DONE!
  182. X    echo ''
  183. X
  184. Xperl:    scripts/policy.pl
  185. X    echo ''
  186. X    echo ${n} "Substituting your variables into 'policy' (Perl)........${c}"
  187. X    sed -e '/^$$poldir=/s%=.*%='"'$(poldir)'"';%' \
  188. X            -e '/^$$myname=/s%=.*%='"'$(myname)'"';%' \
  189. X        -e '/^$$pager=/s%=.*%='"'$(pager)'"';%' \
  190. X        -e '/^$$is3b1=/s%=.*%='"'$(is3b1)'"';%' scripts/policy.pl > policy
  191. X    echo DONE!
  192. X    echo ''
  193. X
  194. X    echo ${n} "Substituting your variables into '1stlogin' (Bourne)....${c}"
  195. X    sed -e '/^PATH=/s%=.*%=$(PATH)%' \
  196. X            -e '/^myname=/s%=.*%=$(myname)%' \
  197. X            -e '/^name=/s%=.*%=$(name)%' \
  198. X        -e '/^record=/s%=.*%=$(record)%' \
  199. X        -e '/^bindir=/s%=.*%=$(bindir)%' \
  200. X        -e '/^poldir=/s%=.*%=$(poldir)%' \
  201. X        -e '/^defterm=/s%=.*%=$(defterm)%' \
  202. X        -e '/^pager=/s%=.*%=$(pager)%' \
  203. X        -e '/^announcement=/s%=.*%=$(poldir)/$(ann)%' \
  204. X        -e '/^mssgto=/s%=.*%=$(mssgto)%' \
  205. X        -e '/^fast=/s%=.*%=$(fast)%' scripts/1stlogin.sh > 1stlogin
  206. X    echo DONE!
  207. X    echo ''
  208. X
  209. Xinstall: Makefile policy 1stlogin
  210. X    # Install the customized executables:
  211. X    echo ${n} "Installing 'policy' executable..........................${c}"
  212. X    if test ! -d $(bindir);\
  213. X    then mkdir $(bindir);\
  214. X         chown $(owner) $(bindir);\
  215. X         chgrp $(group) $(bindir);\
  216. X         echo "$(bindir) created"                              >>.hold;\
  217. X    fi
  218. X    cp    policy $(bindir)
  219. X    echo "$(pol) created or updated"                           >>.hold
  220. X    chown $(owner) $(pol)
  221. X    chgrp $(group) $(pol)
  222. X    echo "$(pol) set owner '$(owner)' and group '$(group)'"    >>.hold
  223. X    chmod 755 $(pol)
  224. X    echo "$(pol) set chmod 755"                                >>.hold
  225. X    echo DONE!
  226. X    echo ''
  227. X
  228. X    # Make sure the 'Policy' directory exists
  229. X    # executable:
  230. X    if test ! -d "$(poldir)";\
  231. X    then echo ${n} "Creating 'Policy' directory for text files..............${c}";\
  232. X         mkdir $(poldir);\
  233. X         chown $(owner) $(poldir);\
  234. X         chgrp $(group) $(poldir);\
  235. X         echo "$(poldir) created"                                 >>.hold;\
  236. X         echo DONE!;\
  237. X         echo '';\
  238. X    fi
  239. X
  240. X    # ...and that the 'Policy' directory contains a valid menu file:
  241. X    if test $(script) != "perl";\
  242. X    then echo ${n} "Making sure the user-menu file is up to snuff...........${c}";\
  243. X         touch 0101000080 $(poldir)/polmenu;\
  244. X         echo "$(poldir)/polmenu created or updated"               >>.hold;\
  245. X         chmod 666 $(poldir)/polmenu;\
  246. X         echo "$(poldir)/polmenu set mode 666 (world read & write)">>.hold;\
  247. X         echo DONE!;\
  248. X         echo '';\
  249. X    fi
  250. X
  251. X    if test ! -d $(etcdir);\
  252. X    then echo ${n} "Creating directory for installing '1stlogin' script.....${c}";\
  253. X         mkdir $(etcdir);\
  254. X         chown $(owner) $(etcdir);\
  255. X         chgrp $(group) $(etcdir);\
  256. X         echo "$(etcdir) created"                                 >>.hold;\
  257. X         echo DONE!;\
  258. X         echo '';\
  259. X    fi
  260. X
  261. X
  262. X    echo ${n} "Installing '1stlogin' executable........................${c}"
  263. X    cp    1stlogin $(etcdir)
  264. X    echo "$(1st) created or updated"                              >>.hold
  265. X    chown $(owner) $(1st)
  266. X    chgrp $(group) $(1st)
  267. X    echo "$(1st) set owner '$(owner)' and group '$(group)'"       >>.hold
  268. X    chmod 755 $(1st)
  269. X    echo "$(1st) set chmod 755"                                   >>.hold
  270. X    echo DONE!
  271. X    echo ''
  272. X
  273. Xtext:    Makefile text/
  274. X    # Text files in 'text' sub-directory:
  275. X    echo ${n} "Installing text files...................................${c}"
  276. X    cp text/* $(poldir)
  277. X    echo "Text files copied to dir: '$(poldir)'"                 >>.hold
  278. X    chown  $(owner) $(poldir)/*;chgrp $(group) $(poldir)/*
  279. X    echo "Text files in $(poldir) set owner '$(owner)'"          >>.hold
  280. X    echo "Text files in $(poldir) set group '$(group)'"          >>.hold
  281. X    chmod 444 $(poldir)/*
  282. X    echo "Text files in $(poldir) set chmod 444"                 >>.hold
  283. X    # We have to do this again here, else the polmenu will be 444:
  284. X    if test $(script) != "perl";\
  285. X    then chmod 666 $(poldir)/polmenu;\
  286. X    fi
  287. X    echo DONE!
  288. X    echo ''
  289. X
  290. X
  291. Xman:    Makefile man/policy.1.T man/1stlogin.8.T
  292. X    echo ${n} "Making localized man page 'policy.1'....................${c}"
  293. X    sed -e '/^PATH_TO_POLEX/s%.*%$(pol)%' \
  294. X        -e '/^PATH_TO_POLDIR/s%.*%$(poldir)/\\fIkeyword\\fP%' \
  295. X                                 man/policy.1.T \
  296. X                               > policy.1
  297. X    echo "Created new localized man page, 'policy.1'"            >>.hold
  298. X    echo DONE!
  299. X    echo ''
  300. X
  301. X    echo ${n} "Making localized man page '1stlogin.8'..................${c}"
  302. X    sed -e '/^PATH_TO_ANN/s%.*%$(poldir)/$(ann)%' \
  303. X        -e '/^PATH_TO_1ST/s%.*%$(1st)%' \
  304. X        -e '/RECORD_FILE/s%.*%$(record)%'                man/1stlogin.8.T \
  305. X                               > 1stlogin.8
  306. X    echo "Created new localized man page, '1stlogin.8'"          >>.hold
  307. X    echo DONE!
  308. X    echo ''
  309. X
  310. Xreadman: Makefile 1stlogin.8 policy.1
  311. X    echo ''
  312. X    echo ${n} "Formatting man page '1stlogin.8' output...please wait.";\
  313. X        nroff -man ./1stlogin.8 | $(pager)
  314. X    echo ''
  315. X    echo ${n} "Formatting man page 'policy.1' output...please wait.";\
  316. X        nroff -man ./policy.1 | $(pager)
  317. X    
  318. Xtellwhat:
  319. X    echo ''
  320. X    echo 'Files created or updated:'
  321. X    echo ''
  322. X    mv .hold install.out;cat install.out
  323. X    echo ''
  324. X    echo "...this list can be found in the file 'install.out'."
  325. X    echo ''
  326. X    echo "Installation of '$(pkg)' [$(script) option] is completed"
  327. X    echo ''
  328. X    echo '             .....to uninstall, say "make uninstall".'
  329. X    echo ''
  330. X    echo '             .....to read new man pages, say "make readman".'
  331. X    echo ''
  332. X    echo ''
  333. X
  334. Xuninstall:
  335. X    echo ''
  336. X    echo "Begin '$(pkg)' uninstall sequence:'
  337. X    echo ''
  338. X    if test -f $(pol);\
  339. X    then rm -f $(pol);\
  340. X         echo "$(pol) is removed!";\
  341. X    else echo "$(pol) doesn't exist!";\
  342. X    fi
  343. X
  344. X    if test -f $(1st);\
  345. X    then rm -f $(1st);\
  346. X         echo "$(1st) is removed!";\
  347. X    else echo "$(1st) doesn't exist!";\
  348. X    fi
  349. X
  350. X    echo ''
  351. X    echo "Files in directory '$(poldir)' not removed....."
  352. X    echo '                            ......(do so by hand, if required.'
  353. X
  354. Xvirgin:
  355. X    # This should get us back to as-issued stock configuration:
  356. X    rm -f 1stlogin policy policy.1 1stlogin.8 install.out .hold 
  357. X
  358. X# end of file
  359. END_OF_FILE
  360. if test 10477 -ne `wc -c <'Makefile.d'`; then
  361.     echo shar: \"'Makefile.d'\" unpacked with wrong size!
  362. fi
  363. # end of 'Makefile.d'
  364. fi
  365. if test -f 'misc/Survey' -a "${1}" != "-c" ; then 
  366.   echo shar: Will not clobber existing file \"'misc/Survey'\"
  367. else
  368. echo shar: Extracting \"'misc/Survey'\" \(8647 characters\)
  369. sed "s/^X//" >'misc/Survey' <<'END_OF_FILE'
  370. X$Id: Survey,v 5.3.2.5 91/09/03 09:55:18 policy USENET $
  371. X
  372. XCopyright (c) 1991 by Bergen B. Hovell, Jr. Submit email responses to
  373. Xpolicy@mtek.com or hardcopy to PO Box 1812, Lake Oswego, OR, USA 97035
  374. X============================ 'POLICY' SURVEY ==============================
  375. XPURPOSE
  376. XThis survey asks system administrators (including news administrators) for
  377. Xbrief feedback about local "policy" in their multi-user computing environ-
  378. Xments, un*x or other.
  379. X
  380. XFor this research, 'policy' is defined as all formal or informal rules of
  381. Xuse of - or access to - such computing resources.
  382. X
  383. XPRIVACY OF INFORMATION PROVIDED
  384. XYour name and/or email address will *not* be released to - nor your indiv-
  385. Xidual responses be shared with - any person, agency, or organization which
  386. Xis not directly engaged in performing this research. You will not be solic-
  387. Xited by anyone nor be otherwise annoyed as a result of your decision to
  388. Xrespond or not respond.
  389. X
  390. XINSTRUCTIONS
  391. XThose persons ONLY should respond who have some current responsibility for
  392. Xsystem administration, or who supervise others who do. Such duty need not
  393. Xbe one's sole (or even primary) duty.
  394. X
  395. XUnder *each* header below, select your *one* best choice by *deleting* all
  396. Xothers under that header (and the header itself), then proceed on to the
  397. Xnext header. This is a forced-choice, multiple-choice, complete-the-state-
  398. Xment format. Just like in school: even if you think the question is perfect-
  399. Xly lousy, pick just one anyway. Please.
  400. X
  401. X[ If you wish to supply comments, they are *most* welcome - but please send
  402. Xthem back by separate mail with "Subject: comments" (or suchlike) so we can
  403. Xpick them out from survey-responses, which get automated (sorta) processing
  404. Xon this end. ]
  405. X
  406. XYou should be able to work these in order from top to bottom, deleting as
  407. Xyou go. When you are done, you should have remaining a total of exactly 18
  408. Xlines of actual responses. Other lines of text will be ignored.
  409. X
  410. XFUNNY STUFF
  411. XIt shouldn't matter if your mailer inserts ">" or other customary left-margin
  412. Xmarks when you reply - you send it, we'll parse it :-). If you have your own
  413. Xdot-sigs or other stuff containing pipe-marks scattered about, however, it
  414. Xjust means someone here may have to hand edit them out. You *could* save
  415. Xus that minor misery by doing this yourself. :-)
  416. X
  417. X============================== BEGIN SURVEY ==============================
  418. X
  419. XYou can start by deleting everything above this line.
  420. X
  421. X[Basic Info]
  422. X
  423. XMy *primary* job location is in:
  424. X================================
  425. X|AA| Africa
  426. X|AB| Australia
  427. X|AC| Canada
  428. X|AD| Europe, except Soviet Union
  429. X|AE| Far East, except Japan and Soviet Union
  430. X|AF| Indian Subcontinent
  431. X|AG| Japan
  432. X|AH| Mexico and Central America
  433. X|AI| South America
  434. X|AJ| Soviet Union
  435. X|AK| United States
  436. X|AZ| Other
  437. X
  438. XMy local organization is *primarily*:
  439. X=====================================
  440. X|BA| Commercial - Hardware or software manufacture
  441. X|BB| Commercial - Hardware or software sales or service
  442. X|BC| Commercial - Other manufacture
  443. X|BD| Commercial - Other sales or service
  444. X|BE| Educational [university or other]
  445. X|BF| Governmental, except military
  446. X|BG| Health-care
  447. X|BH| Military
  448. X|BI| Religious or fraternal
  449. X|BJ| Research, except educational
  450. X|BZ| Other
  451. X
  452. XMulti-user facilities of some kind have been locally available:
  453. X===============================================================
  454. X|CA| Fewer than six months
  455. X|CB| More than six months
  456. X|CC| More than  1 year
  457. X|CD| More than  2 years
  458. X|CE| More than  3 years
  459. X|CF| More than  4 years
  460. X|CG| More than  5 years
  461. X|CH| More than 10 years
  462. X
  463. XI have total system administration experience of:
  464. X=================================================
  465. X|DA| Fewer than six months
  466. X|DB| More than six months
  467. X|DC| More than  1 year
  468. X|DD| More than  2 years
  469. X|DE| More than  3 years
  470. X|DF| More than  4 years
  471. X|DG| More than  5 years
  472. X|DH| More than 10 years
  473. X
  474. XI have total experience as a user [including sysadmin] of:
  475. X==========================================================
  476. X|EA| Fewer than six months
  477. X|EB| More than six months
  478. X|EC| More than  1 year
  479. X|ED| More than  2 years
  480. X|EE| More than  3 years
  481. X|EF| More than  4 years
  482. X|EG| More than  5 years
  483. X|EH| More than 10 years
  484. X
  485. XTotal users on all systems I currently administer:
  486. X==================================================
  487. X|FA| 1-5 users
  488. X|FB| 6-25 users
  489. X|FC| 26-50 users
  490. X|FD| 51-100 users
  491. X|FE| 101-500 users
  492. X|FF| More than 500 users
  493. X|FG| More than 1000 users
  494. X
  495. XMy primary administration activities are on systems which are:
  496. X==============================================================
  497. X|GA| Un*x [any flavor]
  498. X|GB| VMS
  499. X|GC| PC LAN
  500. X|GD| Combination - 2 or more of the above
  501. X|GZ| Other multi-user
  502. X
  503. X[Historical Practice]
  504. X
  505. XHistorically, our policies [written or not] have included:
  506. X==========================================================
  507. X|HA| General guidelines
  508. X|HB| Specific "Dos & Don'ts"
  509. X|HC| Both of the above
  510. X|HD| None of the above
  511. X|HE| Don't know
  512. X|HZ| New site - no historical practice
  513. X
  514. XHistorically, actual policy has been *mainly* defined by:
  515. X=========================================================
  516. X|IA| Informal day-to-day user practices
  517. X|IB| User-committee decisions [or similar formal means]
  518. X|IC| Directions of user's immediate supervisor
  519. X|ID| Sysadmin or system manager decisions
  520. X|IE| Upper management decisions
  521. X|IF| Don't know
  522. X|IZ| New site - no historical practice
  523. X
  524. XHistorically, actual policy-enforcement authority came *mainly* from:
  525. X=====================================================================
  526. X|JA| No one - each user did what he needed to do
  527. X|JB| Users, through active peer pressure
  528. X|JC| User-committee decisions [or similar formal means]
  529. X|JD| User's immediate supervisor or manager
  530. X|JE| Sysadmin or system manager
  531. X|JF| Upper management
  532. X|JG| Don't know
  533. X|JZ| New site - no historical practice
  534. X
  535. XHistorically, policy information was presented to users *mainly* by:
  536. X====================================================================
  537. X|KA| Verbal info, primarily from other users
  538. X|KB| Verbal info from manager, supervisor, or sysadmin
  539. X|KC| On-paper-only written info from manager, supervisor, or sysadmin
  540. X|KD| On-line interactive displayed [as well as on-paper] written policies
  541. X|KE| Don't know
  542. X|KZ| New site - no historical practice
  543. X
  544. X[Current Interest]
  545. X
  546. XRecently, users raise policy questions:
  547. X=======================================
  548. X|LA| Virtually never
  549. X|LB| Probably about once a year
  550. X|LC| Probably about once a month
  551. X|LD| Probably about once a week
  552. X|LE| More frequently
  553. X
  554. XRecently, middle and upper managers raise policy questions:
  555. X===========================================================
  556. X|MA| Virtually never
  557. X|MB| Probably about once a year
  558. X|MC| Probably about once a month
  559. X|MD| Probably about once a week
  560. X|ME| More frequently
  561. X
  562. X[Future Expectations]
  563. X
  564. XFuture policies [written or not] will include:
  565. X==============================================
  566. X|NA| General guidelines
  567. X|NB| Specific "Dos & Don'ts"
  568. X|NC| Both of the above
  569. X|ND| None of the above
  570. X|NE| Don't know
  571. X
  572. XFuture actual policy will be *mainly* defined by:
  573. X=================================================
  574. X|OA| Informal day-to-day user practices
  575. X|OB| User-committee decisions [or similar formal means]
  576. X|OC| Directions of user's immediate supervisor
  577. X|OD| Sysadmin or system manager decisions
  578. X|OE| Upper management decisions
  579. X|OF| Don't know
  580. X
  581. XFuture actual policy-enforcement authority will *mainly* come from:
  582. X===================================================================
  583. X|PA| No one - each user will do what he needs to do
  584. X|PB| Users, through active peer pressure
  585. X|PC| User-committee decisions [or similar formal means]
  586. X|PD| User's immediate supervisor or manager
  587. X|PE| Sysadmin or system manager
  588. X|PF| Upper management
  589. X|PG| Don't know
  590. X
  591. XFuture policy information will be presented to users *mainly* by:
  592. X=================================================================
  593. X|QA| Verbal info, primarily from other users
  594. X|QB| Verbal info from manager, supervisor, or sysadmin
  595. X|QC| On-paper-only written info from manager, supervisor, or sysadmin
  596. X|QD| On-line interactive displayed [as well as on-paper] written policies
  597. X|QE| Don't know
  598. X
  599. XPolicy package:
  600. X===============
  601. X|ZA| We had no difficulty installing this package using the Makefile.
  602. X|ZB| We installed it with just a few changes in the script[s].
  603. X|ZC| We installed it only after making many changes.
  604. X|ZD| We couldn't install it at all.
  605. X|ZE| For other reasons, we chose not to install it at this time.
  606. X
  607. X**************************************************************************
  608. X   Now delete all lines that are not responses to questions, and please
  609. X       email to "survey@mtek.com" or "tektronix!bucket!mtek!survey"
  610. X**************************************************************************
  611. END_OF_FILE
  612. if test 8647 -ne `wc -c <'misc/Survey'`; then
  613.     echo shar: \"'misc/Survey'\" unpacked with wrong size!
  614. fi
  615. # end of 'misc/Survey'
  616. fi
  617. if test -f 'misc/art.ur1' -a "${1}" != "-c" ; then 
  618.   echo shar: Will not clobber existing file \"'misc/art.ur1'\"
  619. else
  620. echo shar: Extracting \"'misc/art.ur1'\" \(14732 characters\)
  621. sed "s/^X//" >'misc/art.ur1' <<'END_OF_FILE'
  622. X
  623. X
  624. X
  625. X
  626. X
  627. X
  628. X
  629. X       $Id: art.ur1.N,v 5.3.2.5 91/09/03 09:55:33 policy USENET $
  630. X
  631. X             Revised from "Daemons and Dragons", UNIX REVIEW,
  632. X                        March 1990 (Vol. 8 No. 3)
  633. X
  634. X
  635. X                      SSSSYYYYSSSSTTTTEEEEMMMM AAAADDDDMMMMIIIINNNNIIIISSSSTTTTRRRRAAAATTTTIIIIOOOONNNN PPPPOOOOLLLLIIIICCCCIIIIEEEESSSS
  636. X
  637. X                              by Bud Hovell
  638. X
  639. X
  640. X
  641. X       Randy Kunkee (uunet!ficc!kunkee), a system administrator for
  642. X       a large systems supplier in the Southwest, wrote the follow-
  643. X       ing question to the system-administration mailing list:
  644. X
  645. X           I am the manager of a support group for a company with
  646. X           about 300 or so users on our internal Xenix and UNIX-
  647. X           based systems.
  648. X
  649. X           I'd like to know what other administrators of large
  650. X           sites do about controlling the contents of news postings
  651. X           and signatures.  Recently, we stopped feeding a news-
  652. X           group because a couple of people got very political and
  653. X           bad-tempered, and it was felt that they were reflecting
  654. X           badly on the company as a whole.  While I am all for
  655. X           freedom of speech, management felt (and I agreed) that
  656. X           this does not necessarily apply to usenet postings,
  657. X           which the company pays to provide.
  658. X
  659. X       IIIInnnnttttrrrroooodddduuuuccccttttiiiioooonnnn
  660. X
  661. X       Some people seem to believe that they have a ``right'' to be
  662. X       political and bad-tempered -- whether it reflects badly on
  663. X       their own organizations or not -- with complete impunity.
  664. X
  665. X       However, when and how administrators confront this issue may
  666. X       be more relevant than the specifics of what decisions may
  667. X       result.  It probably matters least whether those decisions
  668. X       conform to the actions of administrators in other organiza-
  669. X       tions.
  670. X
  671. X       The real problem is that, usually, no formal, coherent pol-
  672. X       icy is established in advance of the need.  For the most
  673. X       part, management isn't directly involved in defining such
  674. X       policy until a crisis arises. Without it, users get con-
  675. X       flicting ideas about what is and isn't okay to send over
  676. X       uuuusssseeeennnneeeetttt.
  677. X
  678. X
  679. X
  680. X
  681. X
  682. X
  683. X
  684. X
  685. X
  686. X
  687. X
  688. X
  689. X
  690. X
  691. X                                  - 2 -
  692. X
  693. X
  694. X
  695. X       FFFFoooorrrrmmmmaaaallll PPPPoooolllliiiicccciiiieeeessss
  696. X
  697. X       In every giant flame war I've witnessed on uuuusssseeeennnneeeetttt concerning
  698. X       how a particular site has threatened Western civilization by
  699. X       barring some user (or some distributed group), the disputed
  700. X       event is characterized by the fact that management made its
  701. X       decision on how to respond based on an after-the-fact policy
  702. X       definition.
  703. X
  704. X       In the final analysis, this indicates a management failure.
  705. X
  706. X       Why?  It's simple:  the local management is responsible for
  707. X       deciding how institutional resources (including computing
  708. X       services) are to serve the overall mission of the institu-
  709. X       tion, and is thus obliged to ensure that those decisions are
  710. X       not undermined by misuse or abuse.  This is its job, whether
  711. X       it does it or not.
  712. X
  713. X       Each organization, having a unique mission, must avoid the
  714. X       naive logic that uuuusssseeeennnneeeetttt has rules to which they must adhere
  715. X       because other organizations (with different missions) have
  716. X       adopted them.  In actual practice, decisions about what
  717. X       groups to carry and which users have what privileges are
  718. X       made by administrators all the time on a case-by-case basis.
  719. X
  720. X       That these decisions vary widely should come as no surprise
  721. X       to anyone not raised in a cave.  What some yahoo in another
  722. X       organization calls ``the spirit of uuuusssseeeennnneeeetttt'' is, perhaps,
  723. X       ardently poetic, but such statements have nothing to do with
  724. X       real-world policy criteria.
  725. X
  726. X       Managers rarely own the computing resources they oversee.
  727. X       However, they do have some real obligations of stewardship
  728. X       toward the true resource owners.  This is true in any organ-
  729. X       ization, be it within the sanctity of the university or in
  730. X       the world of commerce.
  731. X
  732. X       Usually, though, responsibility for anticipating potentially
  733. X       hazardous events and forestalling them using rational policy
  734. X       is not met, either by the administrators that might identify
  735. X       them or by the management that might generate the policy.
  736. X
  737. X       Until. . . .
  738. X
  739. X       Until management finds itself confronted with a nasty situa-
  740. X       tion that demands an immediate response.  At this point, a
  741. X       ``policy'' must suddenly be defined in an ad hoc manner,
  742. X       driven by an event that people now please themselves to
  743. X       choose up sides and fight about. This is potentially damag-
  744. X       ing and grandly inelegant.
  745. X
  746. X
  747. X
  748. X
  749. X
  750. X
  751. X
  752. X
  753. X
  754. X
  755. X
  756. X
  757. X                                  - 3 -
  758. X
  759. X
  760. X
  761. X       Such situations are generally thrust upon management, which
  762. X       truly wishes the whole damn thing would just go away.
  763. X
  764. X       The cost of playing catch-up is always enormous, relative to
  765. X       the cost associated with handling the issue before it
  766. X       arises.
  767. X
  768. X       How do we solve this problem?  Define policies that lay out
  769. X       the rules in writing, in advance, and explain to users the
  770. X       reasoning behind them.
  771. X
  772. X       It is not necessary that every user agrees with the reason-
  773. X       ing -- only that they understand it.  If they also agree
  774. X       with it, that's nice.  If they don't, listen very carefully
  775. X       to their concerns. Usually you will find that you have not
  776. X       conveyed your meaning clearly.
  777. X
  778. X       A written policy should succinctly define desired outcomes
  779. X       to be obtained or undesired outcomes to be avoided, along
  780. X       with information suggesting how and why these outcomes
  781. X       should be treated as proposed.
  782. X
  783. X       You want to ensure that, in the event that someone ``crosses
  784. X       the line'' and violates an organization's policy, the fol-
  785. X       lowing points are already in place:
  786. X
  787. X          +o The ``line'' was defined before (and not after) the
  788. X            event in question took place.
  789. X
  790. X          +o The ``line'' wasn't arbitrary or created and enforced
  791. X            on your sole authority.  This could create many prob-
  792. X            lems for you as an administrator.
  793. X
  794. X          +o All the users have read the policy, have had the oppor-
  795. X            tunity to ask questions, and clearly understand that by
  796. X            logging in, they have agreed to the policy.
  797. X
  798. X          +o The wording of your policy is simple and to the point.
  799. X            Remember that it is the understanding of the policy's
  800. X            intent that is most important.
  801. X
  802. X          +o The final approval of policies came from the highest
  803. X            possible level of the organization.
  804. X
  805. X       Again, if you are the administrator, be certain that you
  806. X       have at least the implicit approval of management (and it's
  807. X       is better to have explicit approval) before establishing
  808. X       policies formally and publicly.
  809. X
  810. X       In any case, be sure you get some kind of approval, or the
  811. X       policy will likely wither when a crisis arises in which it
  812. X
  813. X
  814. X
  815. X
  816. X
  817. X
  818. X
  819. X
  820. X
  821. X
  822. X
  823. X                                  - 4 -
  824. X
  825. X
  826. X
  827. X       might apply.
  828. X
  829. X       If you develop and present your management with a general
  830. X       outline of your proposed policy, along with some good argu-
  831. X       ments in favor of it, there is a good chance that you will
  832. X       ultimately get most or all of what you want.  Be sure that
  833. X       management is comfortable with the policy's basic philosophy
  834. X       before committing to specific policy descriptions.
  835. X
  836. X       The person who formulates the definition of the issues to be
  837. X       addressed is often in the strongest position to govern the
  838. X       final outcome. If you are the system administrator, be sure
  839. X       that you are this person.
  840. X
  841. X       Note that if you wait for an ``event'' to occur before
  842. X       defining policy, there is a very good chance that the policy
  843. X       created ad hoc by an angry and harried management will be
  844. X       far more draconian than warranted, and you will then be com-
  845. X       pelled to enforce it.  You will most likely get what you
  846. X       don't want if you let this happen.
  847. X
  848. X       Document the details of the policy after you and management
  849. X       are in agreement (in principle) about what is needed and
  850. X       why.  There should be no surprises for anyone on fundamen-
  851. X       tals.
  852. X
  853. X       Once this point is reached, submit the final document for
  854. X       signed approval. The success of this step should be a shoo-
  855. X       in, if you've performed the other steps in order.
  856. X
  857. X       If your organization genuinely cares about what its people
  858. X       think and feel, then get permission to set up a panel of
  859. X       users to review the proposed policy.  This makes compliance
  860. X       a non-issue.
  861. X
  862. X       PPPPuuuubbbblllliiiicccciiiizzzziiiinnnngggg tttthhhheeee PPPPoooolllliiiiccccyyyy
  863. X
  864. X       The implementation of a policy is simple:
  865. X
  866. X          +o Set up a means to present the policy to users on line
  867. X            (such as a shell script offering a menu of policies).
  868. X
  869. X          +o Advertise how to access the stored policies and inform
  870. X            the users (in writing) that they are responsible for
  871. X            understanding and complying with published policies.
  872. X
  873. X          +o Tell users that they should direct any questions to
  874. X            you, the system administrator.
  875. X
  876. X       If a policy changes, put a notice in /etc/motd that briefly
  877. X       summarizes the change, and e-mail a copy of this notice to
  878. X
  879. X
  880. X
  881. X
  882. X
  883. X
  884. X
  885. X
  886. X
  887. X
  888. X
  889. X                                  - 5 -
  890. X
  891. X
  892. X
  893. X       every user,  especially managers. If managers don't use the
  894. X       computer, send them a hard copy.
  895. X
  896. X       Use RCS or SCCS to document and date-stamp any changes to
  897. X       policy files. This is easy and protects you against subse-
  898. X       quent hassles over when changes were actually implemented.
  899. X       Again, keep it simple.
  900. X
  901. X       Once original basic policy is hammered out, policy making
  902. X       and enforcement should be a very low-overhead operation.
  903. X       Well-defined policies do not suffer from constant change.
  904. X       If yours do, get some outside help from someone skilled in
  905. X       formulating them.
  906. X
  907. X       If possible, find someone who knows nothing about computing.
  908. X       It may take a bit longer, but the resulting policies will
  909. X       probably be better defined. (When my father was writing his
  910. X       master's thesis, he used me as his proofreader. I was ten.
  911. X       He figured that if I had a problem understanding something
  912. X       he had written, it probably wasn't clear and he changed it.)
  913. X
  914. X       Rather than writing one huge policy ``mega-document'', you
  915. X       can set up topical text files in a designated on-line policy
  916. X       directory that can be maintained easily and called by the
  917. X       menu suggested above. For example, our current policy direc-
  918. X       tory contains:
  919. X
  920. X                 size            name
  921. X                 ---- ----------------------------
  922. X                  922 /usr/local/adm/Policy/back
  923. X                  846 /usr/local/adm/Policy/gen
  924. X                 1455 /usr/local/adm/Policy/logins
  925. X                 5123 /usr/local/adm/Policy/org
  926. X                  317 /usr/local/adm/Policy/usenet
  927. X
  928. X       [Author's comment: you will notice that our own list of pol-
  929. X       icies is now much longer, and the contents larger, than was
  930. X       the case at the time this article was originally written.
  931. X       Progress. :-) bbh ]
  932. X
  933. X       Note that most of these files are tiny.  The biggest one is
  934. X       a complete layout of the entire directory structure, with
  935. X       descriptions of what each directory contains. This is nice
  936. X       for new users, who may be a bit mystified by it all, and for
  937. X       anyone else who wants to know how the system is organized.
  938. X
  939. X       It took me about two hours to document local policies (I am
  940. X       the system administrator as well as a manager/owner, so this
  941. X       part was lightning-fast).  The shell script took about 45
  942. X       minutes. Total investment: under three hours.  Now my users
  943. X       can be informed of how the system is and isn't to be used by
  944. X
  945. X
  946. X
  947. X
  948. X
  949. X
  950. X
  951. X
  952. X
  953. X
  954. X
  955. X                                  - 6 -
  956. X
  957. X
  958. X
  959. X       selecting items from the policy menu. To wit:
  960. X
  961. X                 DIRECTORY OF LOCAL POLICY FOR HOST `MTEK'
  962. X
  963. X                 back    - who makes backups and when
  964. X                 gen     - general overview
  965. X                 logins  - responsibilities of users
  966. X                 org     - where we put things (and why)
  967. X                 usenet  - requests for connection
  968. X                 or `q'uit
  969. X
  970. X                 To review a policy, type in subject: >
  971. X
  972. X       The menu expands, contracts, or changes each time I add,
  973. X       delete, or alter a policy text file name or description.
  974. X       It's dirt simple.
  975. X
  976. X       As for enforcement, in larger organizations, peer review by
  977. X       fellow users may be much more effective than making senior
  978. X       managers (or yourself) the sole prosecutor. Fellow users may
  979. X       be even harsher in their judgment of alleged offenders than
  980. X       management would be.
  981. X
  982. X       SSSSuuuummmmmmmmaaaarrrryyyy
  983. X
  984. X       Again, you will probably find that enforcement is a non-
  985. X       issue if your policies are:
  986. X
  987. X          +o SSSSiiiimmmmpppplllleeee -- your 10-year-old kid understands it.
  988. X
  989. X          +o WWWWrrrriiiitttttttteeeennnn -- uses journalistic style and phrasing.
  990. X
  991. X          +o AAAAddddvvvveeeerrrrttttiiiisssseeeedddd -- everyone knows where and what they are.
  992. X
  993. X          +o CCCCoooonnnnssssiiiisssstttteeeennnntttt -- creates no obvious logical conflicts.
  994. X
  995. X          +o FFFFuuuunnnnccccttttiiiioooonnnnaaaallll -- makes sense in support of the
  996. X            organization's mission.
  997. X
  998. X          +o HHHHuuuummmmaaaannnn -- avoids a bureaucratic tone  (humor helps).
  999. X
  1000. X          +o AAAAuuuutttthhhhoooorrrriiiizzzzeeeedddd -- management signed off on it (preferably
  1001. X            ``top'' management).
  1002. X
  1003. X       [ Author Bio ]
  1004. X
  1005. X       Bud Hovell is a productivity and project management special-
  1006. X       ist with MMMMTTTTEEEEKKKK IIIInnnntttteeeerrrrnnnnaaaattttiiiioooonnnnaaaallll,,,, IIIInnnncccc....
  1007. X
  1008. X
  1009. X
  1010. X
  1011. X
  1012. X
  1013. X
  1014. X
  1015. X
  1016. X
  1017. X
  1018. END_OF_FILE
  1019. echo shar: 570 control characters may be missing from \"'misc/art.ur1'\"
  1020. if test 14732 -ne `wc -c <'misc/art.ur1'`; then
  1021.     echo shar: \"'misc/art.ur1'\" unpacked with wrong size!
  1022. fi
  1023. # end of 'misc/art.ur1'
  1024. fi
  1025. echo shar: End of archive 2 \(of 3\).
  1026. cp /dev/null ark2isdone
  1027. MISSING=""
  1028. for I in 1 2 3 ; do
  1029.     if test ! -f ark${I}isdone ; then
  1030.     MISSING="${MISSING} ${I}"
  1031.     fi
  1032. done
  1033. if test "${MISSING}" = "" ; then
  1034.     echo You have unpacked all 3 archives.
  1035.     echo "'This is usenet version 5.3.2.5 of 91/09/03.'"
  1036.     rm -f ark[1-9]isdone
  1037. else
  1038.     echo You still need to unpack the following archives:
  1039.     echo "        " ${MISSING}
  1040. fi
  1041. ##  End of shell archive.
  1042. exit 0
  1043. -- 
  1044. Bud Hovell
  1045. _______________
  1046. policy@mtek.com
  1047.